

import 'dart:async';

class Chef {
  String avatar; // 头像
  bool iswork;   // 工作状态
  String name;   // 名字
  List<Pizza> pizzas;// 剩余pizza个数
  int speed;
  // Timer _timer;
  Function(String chefName) callback;

  Chef({this.avatar,this.iswork,this.name,this.pizzas,this.speed});

  newAddPizzas(List<Pizza> pizzas) {
    this.pizzas.addAll(pizzas);
    if(iswork) newBegin();
  }

  Future newBegin() async {
    Duration peroid = Duration(seconds: speed);
    await Future.delayed(peroid, (){
      if(pizzas.length > 0 && iswork) {
        callback(name);
        newBegin();
      }
    });
  }

  Future newStop() async {
    iswork = false;
  }

  // void addPizzas(List<Pizza> pizza) {
  //   this.pizzas.addAll(pizza);
  //   if(iswork) {
  //     begin();
  //   }
  // }

  // void begin() {
  //   stop();
  //   final peroid = Duration(seconds: speed);
  //   _timer = Timer.periodic(peroid, (timer){
  //     if(pizzas.length == 0) {
  //       stop();
  //     } else {
  //       print("每秒钟回调$name");
  //       if(iswork)callback(name);
  //     }
  //   });
  // }

  // void stop() {
  //   if(_timer == null) return;
  //   _timer.cancel();
  //   _timer = null;
  //   // iswork = false;
  // }
}

enum EpizzaSize {
  small,
  medium,
  large
}

class Pizza {
  EpizzaSize size;
  List<String> toppings;
  bool isfinish;
  int pizzaId;
  int chefId;

  Pizza({this.size,this.toppings, this.isfinish, this.pizzaId, this.chefId});
}